Kong KonnectのAPI ProductsとDev PortalでAPIを管理してみる

Kong KonnectのAPI ProductsとDev PortalでAPIを管理してみる

KongのAPI Productsを使用するとAPIの管理を行えます。APIを一覧で確認でき、各種KPIも確認することが可能です。セキュリティリスクがある野良APIの把握も可能です。
Clock Icon2024.12.22

APIの管理を効率化したい えがわ です。

本ブログはゲーソル・ギョーソル Advent Calendar 2024の22日目のブログとなります。
https://qiita.com/advent-calendar/2024

今回はKongのAPI管理機能である、API ProductsDev Portalについて確認していきます。

環境

  • Kong Konnect
  • Ubuntu 22.04.4 LTS(WSL2)

やってみる

KongがホスティングしているhttpbinのAPIを管理してみます。

ServiceとRouteを設定

管理するServiceを追加します。

Gateway Services -> New Gateway Serviceを選択しService作成画面に遷移します。

名前とUpstream URLを設定し登録します。
kong_api_products_dev_portal_01.png

管理するServiceからRouteを追加します。
kong_api_products_dev_portal_02.png

名前とパスを入力しRouteを設定します。
kong_api_products_dev_portal_03.png
kong_api_products_dev_portal_05.png

動作確認を行います。

egawa@HL01559:~$ curl http://localhost:8000/httpbin/get?message=hello
{
  "args": {
    "message": "hello"
  },
  "headers": {
    "Accept": "*/*",
    "Connection": "keep-alive",
    "Host": "httpbin.konghq.com",
    "User-Agent": "curl/7.81.0",
    "X-Forwarded-Host": "localhost",
    "X-Forwarded-Path": "/httpbin/get",
    "X-Forwarded-Prefix": "/httpbin",
    "X-Kong-Request-Id": "e4f2a36b124b85375831153c83e27149"
  },
  "origin": "192.168.143.2",
  "url": "http://localhost/get?message=hello"
}

ServiceとRouteの設定が完了しました。

API Productsの作成

作成したServiceを管理対象とするため、API Productsを作成します。

API Products -> + API Productから作成します。

kong_api_products_dev_portal_06.png

Productの名前を設定し作成します。

kong_api_products_dev_portal_07.png

作成できました。

kong_api_products_dev_portal_08.png

次にAPIのバージョンを作成します。

Product Versions -> New Versionから作成します。

kong_api_products_dev_portal_09.png

管理するControl PlaneとServiceを選択します。

kong_api_products_dev_portal_10.png

APIのバージョンを作成できました。

kong_api_products_dev_portal_24.png

ダミーとして書いたSpecをアップロードしてみます。

httpbin_spec.yaml
openapi: 3.0.0
info:
  title: HTTPBin API
  description: A simple API to inspect HTTP requests.
  version: "1.0.0"
servers:
  - url: https://httpbin.konghq.com
paths:
  /get:
    get:
      summary: Get details about the GET request.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  args:
                    type: object
                  headers:
                    type: object
                  origin:
                    type: string
                  url:
                    type: string
  /ip:
    get:
      summary: Get the IP address of the requester.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  origin:
                    type: string
  /uuid:
    get:
      summary: Get a new UUID.
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  uuid:
                    type: string

SwaggerライクなUIが表示されました。

kong_api_products_dev_portal_11.png

API Productsの確認

API Productsの一覧画面に遷移するとバージョン作成時に選択したServiceの情報を確認することが可能です。

kong_api_products_dev_portal_12.png

一覧画面では3つの情報を確認することが可能です。

RequestsはAPIの価値
Error RateAverage LatencyはAPI利用者の体験
だといえます。

Dev Portalを作成

ここまでは管理者がAPIを管理するまでの流れをやってきましたが、ここからは利用者用のページを作成していきます。

API Productの画面からCreate Dev Portalを選択します。

kong_api_products_dev_portal_13.png

名前だけ設定し、後は初期値のまま作成します。

kong_api_products_dev_portal_14.png

Dev Portalが作成できました。

kong_api_products_dev_portal_21.png

ここからはAPI Productsの公開作業を行います。

+ API Productsを選択し、対象のAPI ProductのPublishボタンを押下します。

kong_api_products_dev_portal_22.png

これでAPI Productが公開されました。

kong_api_products_dev_portal_23.png

さらにVersionの公開も行います。
API Productの画面から対象Versionの画面に遷移し、Actions -> Publish to Dev Portalを選択します。

kong_api_products_dev_portal_18.png

kong_api_products_dev_portal_19.png

バージョンの公開も行えました。

準備が完了したので、Dev Portalの画面を確認してみます。

Dev Portalの画面をからDefault Portal URLにアクセスします。

認証が必要なので、アカウントの作成を行います。

kong_api_products_dev_portal_15.png

メールアドレスの認証後、Dev Portal画面からアクセス許可を行います。

kong_api_products_dev_portal_16.png

ログインするとSwaggerライクAPI仕様書を利用者用に公開できています。

kong_api_products_dev_portal_20.png

さいごに

KongのAPI管理機能を実際に試してみました。
API ProductsではAPIのKPIを一覧で確認でき、Dev Portalでは利用者用のAPI仕様書を簡単に公開することが可能です。
組織横断でAPI Productsを使用することでAPIを重複して開発することを防ぐことができ、
また、セキュリティリスクのある野良APIの発見にも繋がります。
この記事がどなたかの参考になれば幸いです。

参考

https://qiita.com/ipppppei/items/cdd1f4dd6be82bf76943

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.